視觀表可以把經常用到的SELECT語句寫成視觀物件的形式儲存起來,當要查詢時該資料時,只要用簡單的語句搜尋
SELECT 欄位 FROM 視觀表
建立視觀表
CREATE [ OR REPLACE ][FORCE | NOFORCE ]VIEW 視觀表名稱
[(欄位別名 [ ,欄位別名]..)]
AS 子查詢
[WITH CHECK OPTION [CONSTRAINT 約束條件 ]]
[WITH READ ONLY [ CONSTRAINT 約束條件 ]];
使用視觀表檢索資料
*SELECT |欄位別名 [, 欄位別名]...
FROM 視觀表
[WHERE 條件];
丟棄視觀表
DROP VIEW 視觀表 ;
透過視觀表新增 刪除 更改基底表資料列規則
- 對單純視觀表,可對它進行所有DML動作
- 如果構成視觀表的子查詢函有下列元素,則無法刪除資料列
- 分組函數
- GROUP BY 子句
- DISTINCT 關鍵字
- 虛擬欄位ROWNUM關鍵字
- 如果構成視觀表的子查詢含有下列元素,則無法更改資料列
- 分組函數
- GROUP BY子句
- DISTINCT 關鍵字
- 虛擬欄位ROWNUM關鍵字
- 由表達式組成的欄位
- 如果構成視觀表的子查詢含有下列元素,則無法新增資料列
- 分組函數
- GROUP BY子句
- DISTINCT 關鍵字
- 虛擬欄位ROWNUM關鍵字
- 由表達式組成的欄位
- 未被視觀表選取的基底表欄位中,含有NOT NULL 約束欄位
- 如果視觀表使用WITH CHECK OPTION選項則該視觀表再進行DML操作時會受到自動值域檢核約束
- 如果視觀表使用WITH READ ONLY選項,則視觀表只能查看資料 不能增刪查改
- 在複雜視觀內,如果欄位的主鍵索引是唯一值,即對應的合併基底表是鍵值保留表,就可對該表進行新增 刪除 更改資料
- 透過檢索 user_updatetable_columns資料字典column_name及updatable欄位,可查看觀視表內有那些欄位是可以被更改